package com.whli.jee.system.service;

import com.whli.jee.common.web.service.IBaseService;
import com.whli.jee.system.entity.SysUser;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 *
 * @author whli
 * @version 1.0
 * @since 1.0
 * */
public interface ISysUserService extends IBaseService<SysUser> {

    /**
     * 由登录用户名查询用户
     * @param loginName
     * @return
     */
    SysUser getByLoginNameOrEmailOrPhone(String loginName);


    /**
     * 由邮箱查询用户
     * @param email
     * @return
     */
    SysUser getByEmail(String email);

    /**
     * 由邮箱查询用户
     * @param phone
     * @return
     */
    SysUser getByPhone(String phone);

    /**
     * 重置密码
     * @param ids
     * @return
     */
    @Transactional
    int resetPassword(List<String> ids);

    /**
     * 根据角色ID查询用户
     * @param roleId
     * @return
     */
    List<SysUser> listByRole(String roleId);

    /**
     * 验证用户名唯一
     * @param id
     * @param loginName
     * @return
     */
    SysUser validByLoginName(String id, String loginName);

    /**
     * 验证邮箱唯一
     * @param id
     * @param email
     * @return
     */
    SysUser validByEmail(String id, String email);

    /**
     * 验证手机唯一
     * @param id
     * @param phone
     * @return
     */
    SysUser validByPhone(String id, String phone);

    /**
     * 修改密码
     * @param entity
     * @return
     */
    @Transactional
    int modifyPassword(SysUser entity);

    /**
     * 启用/禁用用户
     * @param enable
     * @param ids
     * @return
     */
    @Transactional
    int modifyEnabled(String enable, List<String> ids);
}
